<template>
  <div>
    <el-card class="box-card" style="margin:10px 0">
      <div slot="header" class="clearfix">
        <!--   type="card" @tab-click="handleClick" -->
        <!-- 头部左侧内容 -->
        <el-tabs class="tab" v-model="activeName">
          <el-tab-pane label="销售额" name="sale"></el-tab-pane>
          <el-tab-pane label="访问量" name="visite"></el-tab-pane>
        </el-tabs>
        <!-- 头部右侧内容 -->
        <div class="right">
          <span @click="setDay">今日</span>
          <span @click="setWeek">本周</span>
          <span @click="setMonth">本月</span>
          <span @click="setYear">本年</span>
          <!-- v-model="value1" -->
          <el-date-picker v-model="date" class="date" type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" size="mini" value-format="yyyy-MM-dd">
          </el-date-picker>
        </div>
      </div>
      <div>
        <el-row>
          <el-col :span="18">
            <!-- 容器 -->
            <div class="charts" ref="charts" style=" width:100%;
  height:300px"> </div>
          </el-col>
          <el-col :span="6">
            <div class="right1">
              <h3>门店销售排名</h3>
              <ul>
                <li v-for="(rank,index) in listState.userRank" :key="rank.no">
                  <span class="rindex">{{rank.no}}</span>
                  <span>{{rank.name}}</span>
                  <span class="rvalue">{{rank.money}}</span>
                </li>
              </ul>
            </div>
          </el-col>
        </el-row>
      </div>
    </el-card>
  </div>
</template>

<script>
import *as echarts from 'echarts'
import dayjs from 'dayjs'
import { mapState } from 'vuex'
import { readlinkSync } from 'fs'
export default {
  data () {
    return {
      // 默认展示销售额
      activeName: 'sale',
      // 声明一个echarts
      mycharts: null,
      // 收集日历的数据
      date: []
    }
  },
  methods: {
    // 本天
    setDay () {
      const day = dayjs().format('YYYY-MM-DD')
      this.date = [day, day]
    },
    // 本周
    setWeek () {
      const start = dayjs().day(1).format('YYYY-MM-DD')
      const end = dayjs().day(7).format('YYYY-MM-DD')
      this.date = [start, end]
    },
    // 本月
    setMonth () {
      const start = dayjs().startOf('month').format('YYYY-MM-DD')
      const end = dayjs().endOf('month').format('YYYY-MM-DD')
      this.date = [start, end]
    },
    // 本年
    setYear () {
      const start = dayjs().startOf("year").format("YYYY-MM-DD");
      const end = dayjs().endOf("year").format("YYYY-MM-DD");
      this.date = [start, end];
    }
  },
  mounted () {
    this.mycharts = echarts.init(this.$refs.charts)
    this.mycharts.setOption({
      title: {
        text: this.title + '趋势'
      },
      tooltip: {
        trigger: 'axis',
        axisPointer: {
          type: 'shadow'
        }
      },
      grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
      },
      xAxis: [
        {
          type: 'category',
          data: [],
          axisTick: {
            alignWithLabel: true
          }
        }
      ],
      yAxis: [
        {
          type: 'value'
        }
      ],
      series: [
        {
          name: 'Direct',
          type: 'bar',
          barWidth: '60%',
          data: [],
          color: 'yellowgreen'
        }
      ]
    })
    // 顶部是mouted  为什么是第一次没有数据， 因此没有显示
  },
  computed: {
    title () {
      return this.activeName == "sale" ? "销售额" : "访问量";
    },
    ...mapState({
      listState: state => state.home.list
    })
  },
  //监听tab栏切换的效果 
  watch: {
    title () {
      // 重新修复图片的配置
      // 图片配置的数据可以再次修改
      this.mycharts.setOption({
        title: {
          text: this.title
        },
        xAxis: {
          data: this.title == '销售额' ? this.listState.orderFullYearAxis : this.listState.userFullYearAxis
        },
        series: [{
          name: 'Direct',
          type: 'bar',
          barWidth: '60%',
          data: this.title == '销售额' ? this.listState.orderFullYear : this.listState.userFullYear,
          color: 'yellowgreen'
        }]
      })
    },
    // 请求回数据，先展示在页面上，不能会出现空的情况
    listState () {
      this.mycharts.setOption({
        title: {
          text: this.title + '趋势'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'shadow'
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [
          {
            type: 'category',
            data: this.listState.orderFullYearAxis,
            axisTick: {
              alignWithLabel: true
            }
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ],
        series: [
          {
            name: 'Direct',
            type: 'bar',
            barWidth: '60%',
            data: this.listState.orderFullYear,
            color: 'yellowgreen'
          }
        ]
      })
    }
  }
}
</script>

<style scoped>
.clearfix {
  position: relative;
  display: flex;
  justify-content: space-between;
}
.tab {
  width: 100%;
}
.right {
  position: absolute;
  right: 0px;
}
.date {
  width: 200px;
  margin: 0px 20px;
}
.right span {
  margin: 0px 10px;
}
.charts {
  width: 100%;
  height: 300px;
}
ul {
  list-style: none;
  width: 100%;
  height: 300px;
  padding: 0px;
}
ul li {
  height: 8%;
  margin: 10px 0px;
}
.rindex {
  float: left;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: black;
  color: white;
  text-align: center;
}
.rvalue {
  float: right;
}
</style>